// 
// Created By: haolong 2021/05/26
// 

#pragma once

#include "cybertron/DefinesCore.hpp"
#include <string>
CYBERTRON_BEGIN

class SimOneServerInfo
{
public:
	struct SONServerInfo
	{
		std::string serverAddr;
		int port;
	};
	struct LogServerInfo
	{
		std::string serverAddr;
		int port;
	};
	struct AlarmServerInfo
	{
		std::string serverAddr;
		int port;
	};
	struct DevOpsServerInfo
	{
		std::string serverAddr;
		int port;
	};
public:
	CybertronCoreAPI static SimOneServerInfo& GetInstance() {
		static SimOneServerInfo instance;
		return instance;
	}
	~SimOneServerInfo();
	
public:
	CybertronCoreAPI bool Init();
	CybertronCoreAPI  bool getSONServerInfo(SONServerInfo* pServerInfo);
	CybertronCoreAPI  bool getLogServerInfo(LogServerInfo* pServerInfo);
	CybertronCoreAPI  bool getAlarmServerInfo(AlarmServerInfo* pServerInfo);
	CybertronCoreAPI  bool getDevOpsServerInfo(DevOpsServerInfo* pServerInfo);

private:
	SimOneServerInfo();
	SONServerInfo mSonServerInfo;
	LogServerInfo mLogServerInfo;
	AlarmServerInfo mAlarmServerInfo;
	DevOpsServerInfo mDevopsServerInfo;
};

CYBERTRON_END
